import tkinter as tk

# 快速排序：先定义一个标准，大于标准的放一边，小于标准的方另一边，然后再递归。这个标准可以随便定，通常用第一个元素值。
def quick_sort(arr, mode=1):
    if len(arr) < 2:
        return arr
    else:
        # 选择第一个数组元素作为判断标准
        pivot = arr[0]
        # 小于等于标准的数组
        less = [x for x in arr[1:] if x <= pivot]
        # 大于标准的数组
        greater = [x for x in arr[1:] if x > pivot]
        if mode == 1:
            return quick_sort(less) + [pivot] + quick_sort(greater)
        else:
            return quick_sort(greater) + [pivot] + quick_sort(less)
# 开始
def send():
    arr_str = entry.get().split()
    # 转整数或者浮点数，一般是整数
    arr = [float(x) for x in arr_str]
    sorted_arr = quick_sort(arr)
    result_label.config(text=str(sorted_arr))

# 创建主窗口
root = tk.Tk()
root.title('快速排序')
root.geometry('400x200')

# 创建输入框和按钮
entry = tk.Entry(root)
entry.insert(0,'1 3 2 5 61 17 9')
entry.pack()
tk.Button(root, text='快速排序', command=send).pack()

# 创建结果显示标签
result_label = tk.Label(root, text='')
result_label.pack()

# 运行主循环
root.mainloop()